<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta http-equiv="X-UA-Compatible" content="ie=edge" />
		<title>软件开发 – 您准备好了吗？</title>
		<link rel="stylesheet" href="css/style.css" />
	</head>
	<body>
		<div class="container">
			<!-- 文章 -->
			<article>
				<!-- 文章头部 -->
				<header>
					<h1>软件开发 – 您准备好了吗？</h1>
					<p>作者：艺夫 发布于：2019年5月10日</p>
				</header>
				<!-- 文章内容 -->
				<div class="article-main">
					<img src="images/programming.jpg" alt="programming" />
					<p>
						根据美国劳工部的统计，美国从2016到2026年，软件开发的职位数需求的增长率达到惊人的
						24%，远高于各类岗位需求的平均增长率！2017年，软件开发人员的平均年薪达到了
						10 万美元以上，要知道全美劳工同期的年平均收入才4万美元出头！
					</p>
					<p>
						不仅美国，世界上大多数发达国家及发展中国家，对软件开发人员的需求同样有增无减。中国对软件开发人员的需求一直都很迫切，只是大量出自高校的软件工程毕业生并不能很快胜任岗位需求。他们有的学会了语言，但没有学会编程。他们有的甚至不知道，『语言仅仅是工具，编程是利用语言工具创造美好事物的过程，是管理思想、事务处理思想及工程思想的综合体现。学会语言，正如你小学时学会了造句，学会编程，正如你能够用句子创造出富有思想的小说、散文或者诗歌一样。』记得学校曾聘用过一位在读的即将毕业的软件工程研究生来给学生上《版本控制系统应用》课程，这位软件工程领域的准硕士很不好意思地问我：『请问，什么是版本控制系统？』
					</p>
					<p>
						那么，如果你是软件工相关专业的在校大学生，或者只是一位对软件开发很有兴趣的普通青年，要想成为被市场认可的软件开发人员，该如何去自我学习、自我修练呢？
					</p>

					<p>
						第一、你要学会去爱英语并主动学习，而不是抵触它。英语是你进入软件开发领域并很好地生存下去的根本保障。注意，这项学习是贯穿你的整个职业生涯的，只不过一开始不太容易，后来就会越来越轻松。如果不愿学习英语，那奉劝你主动放弃成为软件开发人员的梦想，去尝试做做其它不太需要英语的工作。
					</p>

					<p>
						第二，你要学习操作系统，掌握操作系统的基本原理和构成，掌握操作系统的安装、配置和使用技能。建议至少学习两种操作系统，Windows
						和 Linux；
					</p>

					<p>
						第三，你要学习一门基础编程语言，知道源代码编写、源代码管理、依赖管理、代码编译、目标链接等程序开发过程。理想的学习环境是
						Linux 下 C 语言开发平台；
					</p>

					<p>
						第四，你需要了解基本的数据结构的特点及其操作。你可以不用去实现数据结构，但必须保证在将来会根据情况在高级语言里正确选用它们的实现。数据结构的书籍很多，你可选择一本能够讲清各种数据结构特点及操作的书就好，至于编程实现，除非你需要做较为底层的开发，否则可以略过；
					</p>

					<p>
						第五，你要懂得如何对数据实体进行分析并规划它们的合理存储和高效使用。你要非常熟悉
						SQL 语言。你要掌握至少一种常用数据库平台的安装、配置、管理和使用；
					</p>

					<p>
						第六、你要尽可能掌握多种高级语言，如：Java、Python、PHP、Ruby、Go、JavaScript、Dart、Kotlin等，并会根据项目需求合理选用它们的开发框架进行开发。各种语言都有类似之处和自身独有特点，掌握多种高级语言并不如想像中那么困难；
					</p>

					<p>
						第七、你要有足够强的自学能力，只通过英文的 Documentation + Examples
						就能掌握新的东西。你要掌握热门的开发技术及框架，Web 前端、Web
						后台、桌面应用、移动开发……不论是哪个方面的开发，你要尽可能多地涉足其中，并注意观察新技术和新方法的涌现；
					</p>

					<p>
						第八、你要知道软件工程（软件生产过程）的各个环节，知道『需求分析、系统设计和详细设计、实现、测试、部署和运行维护』等各个环节的作用和目标，必要时可顺利转变自身在软件生产过程中的角色。你还需要知道所谓『敏捷开发』的思想基础和应用方法，以轻松面对软件需求的变化；
					</p>

					<p>
						第九、你要学会在版本控制系统里与多人进行合作开发；
					</p>

					<p>
						第十、你要有团队精神，要有与他人顺利沟通的技能。你要坚持学习，毫不松懈。在开发中遇到不能解决的问题时不要气馁，解决方案一直在那儿，只是你暂时还没有想到而已。
					</p>

					<p>
						作为一名程序员，我能想到的就是那么多。希望能够对你有所帮助。
					</p>
				</div>
				<footer class="article-footer">
					作者联系地址：
					<address>
						<p>中国云南省，昆明市某某路，某某大厦8021号</p>
					</address>
				</footer>
			</article>
		</div>
	</body>
</html>
